﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SistemaComprasVentaYICHAN
{
    class GestorEmpleado
    {
        private static GestorEmpleado pInstancia = null;
        private List<Empleado> empleados = new List<Empleado>();

        private GestorEmpleado()
        {
            Empleado emp = new Empleado("001", "Zully", "Justino", "Salinas", "Jefe de Ventas",
                        "20072346", "23453455", "zu.justino@zmail.com", "Av.LaMarina 1020");
            empleados.Add(emp);
            emp = new Empleado("002", "Kevin", "Zuñiga", "Blanco", "Vendedor",
                        "5488465", "24654", "kev@zmail.com", "edificioPiso11");
            empleados.Add(emp);
            emp = new Empleado("003", "Hector", "Gomita", "Montoya", "Jefe de Marca",
                        "54684646", "6846464", "dfgd@zmail.com", "casa1");
            empleados.Add(emp);
            emp = new Empleado("004", "Albert", "Liberat", "Navarro", "Vendedor",
                        "879634", "564516531", "dfdfgsdf@zmail.com", "fdgdgfdg");
            empleados.Add(emp);
            emp = new Empleado("005", "Miguel", "Calderon", "XDXDX", "Jefe de Marca",
                        "652266", "654984", "migCa@zmail.com", "fsfdsfsd");
            empleados.Add(emp);
        }

        /*Patrón Singleton*/
        public static GestorEmpleado ObtenerInstancia()
        {
            if (pInstancia == null)
            {
                pInstancia = new GestorEmpleado();

            }
            else
                Console.WriteLine("No se pudo crear instancia");
            return pInstancia;
        }

        public void AgregarEmpleado(string num, string nombre, string apPaterno, string apMaterno, string tipo, string dni, string fono, string email, string direccion)
        {
            Empleado emp = new Empleado(num, nombre, apPaterno, apMaterno, tipo, dni, fono, email, direccion);
            empleados.Add(emp);
        }

        public void ModificarProveedor(string CodEmpleado, string nombre, string apPaterno, string apMaterno, string tipo, string dni, string fono, string email, string direccion)
        {
            Empleado emp = BuscarEmpleado(CodEmpleado);
            if (emp != null)
            {
                emp.setNombre(nombre);
                emp.setApPat(apPaterno);
                emp.setApMat(apMaterno);
                emp.setTipo(tipo);
                emp.setDni(dni);
                emp.setFono(fono);
                emp.setEmail(email);
                emp.setDireccion(direccion);
            }
        }

        public void EliminarEmpleado(string cod)
        {
            Empleado emp = BuscarEmpleado(cod);
            if (emp != null)
            {
                empleados.Remove(emp);
            }
        }

        public Empleado BuscarEmpleado(string cod)
        {
            int i;
            for (i = 0; i < empleados.Count; i++)
            {
                if (empleados[i].obtCodigo() == cod)
                    return empleados[i];
            }
            return null;
        }

    }
}
